<template>
  <div class="box2">
    <div class="title">
      <p>年龄比例</p>
      <img src="../../images/dataScreen-title.png" alt="" />
    </div>
    <!-- 图形图标的容器 -->
    <div class="charts" ref="charts"></div>
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
//引入echarts
import * as echarts from 'echarts'
let charts = ref()
//组件挂载完毕初始化图形图标
onMounted(() => {
  let mychart = echarts.init(charts.value)
  //设置配置项
  let option = {
    //提示框组件
    tooltip: {
      trigger: 'item', //提示框的触发方式为数据项触发
    },
    //图例组件
    legend: {
      right: 30, //图例组件距离容器右侧的距离(单位:px)
      top: 40, //图例组件距离容器顶部的距离
      orient: 'vertical', //图例组件方向的设置
      textStyle: {
        color: 'white',
        fontSize: 14, //单位:px
      },
    },
    //系列组件:决定你展示什么样的图形图标
    series: [
      {
        name: 'Access From', //系列名称
        type: 'pie', //饼图
        radius: ['40%', '70%'], //饼图的半径: 容器宽度的 40% 到 70%
        avoidLabelOverlap: false, //是否启用防止标签重叠
        //数据项的样式
        itemStyle: {
          borderRadius: 10, //数据项的圆角半径(单位:像素)
          borderColor: '#fff', //数据项的边框颜色
          borderWidth: 2, // 数据项的边框宽度(单位:像素)
        },
        //数据项的标签
        label: {
          show: true,
          position: 'inside', //设置数据项标签的位置为饼图内部
          color: 'white', //数据项标签的颜色
        },
        //数据项的标签线
        labelLine: {
          show: false,
        },
        data: [
          { value: 1048, name: '军事' },
          { value: 735, name: '新闻' },
          { value: 580, name: '直播' },
          { value: 484, name: '娱乐' },
          { value: 300, name: '财经' },
        ],
      },
    ],
    //调整图形图标的位置
    grid: {
      left: 0,
      top: 0,
      right: 0,
      bottom: 0,
    },
  }
  mychart.setOption(option) //设置配置项
})
</script>

<style scoped lang="scss">
.box2 {
  width: 100%;
  height: 100%;
  background: url(../../images/dataScreen-main-cb.png) no-repeat;
  background-size: 100% 100%;

  .title {
    margin-left: 20px;
    margin-top: 20px;
    p {
      color: white;
      font-size: 20px;
    }
  }

  .charts {
    height: 220px;
  }
}
</style>
